#!/bin/bash

# Godot 最优Release导出模板 RISC-V 交叉编译脚本
# 使用进迭时空的 RISC-V 交叉编译工具链，启用 LLVM 优化，使用 x60 调度和 Fusion 信息
# 请在执行脚本前安装进迭时空的 RISC-V 交叉编译工具链：https://archive.spacemit.com/toolchain/ 并设置环境变量

set -e

# 进迭时空 LLVM RISC-V 交叉编译工具链
export CC="riscv64-unknown-linux-gnu-clang"
export CXX="riscv64-unknown-linux-gnu-clang++"

PLATFORM="linuxbsd"
ARCH="riscv64"
TARGET="template_release"
LINKER="mold"
DEBUG="no"

# 编译旗标
CCFLAGS="-O3 -mcpu=spacemit-x60 -march=rv64gc_zba_zbb_zbc_zbs -static-libgcc"
LINKFLAGS="-mllvm -cache-line-size=64 -mllvm -prefetch-distance=128"

scons platform="${PLATFORM}" \
      arch="${ARCH}" \
      target="${TARGET}" \
      debug="${DEBUG}" \
      linker="${LINKER}" \
      CCFLAGS="${CCFLAGS}" \
      LINKFLAGS="${LINKFLAGS}"

if [ $? -eq 0 ]; then
    echo "Build completed successfully"
else
    echo "Build failed" >&2
    exit 1
fi